package com.example.jm24;

import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.annotation.NonNull;

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import static androidx.core.app.ActivityCompat.startActivityForResult;

public class uploadLogFile {
    public uploadLogFile(Context context, final String uploadUrl, final String oldFilePath, final String name) {
        //上传
        /**
         * 上传文件到服务器
         * @param context
         * @param uploadUrl     上传服务器地址
         * @param oldFilePath       本地文件路径
         */

            new Thread(new Runnable(){
                @Override
                public void run() {
                    try {
                        URL url = new URL(uploadUrl);
                        HttpURLConnection con = (HttpURLConnection) url.openConnection();

                        // 允许Input、Output，不使用Cache
                        con.setDoInput(true);
                        con.setDoOutput(true);
                        con.setUseCaches(false);
                        con.setRequestProperty("filename","image-"+name);//添加头部参数，只有这个key才可以得到对应的文件
                        con.setConnectTimeout(5000);
                        con.setReadTimeout(5000);
                        // 设置传送的method=POST
                        con.setRequestMethod("POST");
                        //在一次TCP连接中可以持续发送多份数据而不会断开连接
                        con.setRequestProperty("Connection", "Keep-Alive");
                        //设置编码
                        con.setRequestProperty("Charset", "UTF-8");
                        //text/plain能上传纯文本文件的编码格式
                        con.setRequestProperty("Content-Type", "text/html");

                        // 设置DataOutputStream
                        DataOutputStream ds = new DataOutputStream(con.getOutputStream());

                        // 取得文件的FileInputStream
                        FileInputStream fStream = new FileInputStream(oldFilePath);
                        // 设置每次写入1024bytes
                        int bufferSize = 1024;
                        byte[] buffer = new byte[bufferSize];

                        int length = -1;
                        // 从文件读取数据至缓冲区
                        while ((length = fStream.read(buffer)) != -1) {
                            // 将资料写入DataOutputStream中
                            ds.write(buffer, 0, length);
                        }
                        ds.flush();
                        fStream.close();
                        ds.close();
                        if (con.getResponseCode() == 200) {

                            //logger.info("文件上传成功！上传文件为：" + oldFilePath);
                            System.out.println("文件上传成功！上传文件为：" + oldFilePath);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        System.out.println("文件上传失败！上传文件为：" + oldFilePath);
                        System.out.println("报错信息toString：" + e);
                        //logger.info("文件上传失败！上传文件为：" + oldFilePath);
                        //logger.error("报错信息toString：" + e.toString());
                    }
                }
            }).start();
    }
}
